package cn.honqun.tinycms.common.json;

import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

/**
 * 长整型反序列化，如果为boolean类型，则转换为0/1；如果为String类型，则按照java规则转换。如果不可转换，则转换为Long.MIN_VALUE
 */
public class LongDeserializer extends JsonDeserializer<Long> {
    @Override
    public Long deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
        String str = jsonParser.getText();
        if (StrUtil.isBlank(str)) {
            return null;
        }

        return jsonParser.getValueAsLong();
    }
}
